//用户管理模块的接口
import request from "@/utils/request";
import type { AllRoleResponseDate, SetRoleData, User, UserResponseData } from "./type";
//枚举地址
enum API {
    //获取全部已有用户账号信息
    ALLUSER_URL = '/admin/acl/user/',
    //添加一个新的用户账号
    ADDUSER_URL = "/admin/acl/user/save",
    //更新已有的用户账号
    UPDATEUSER_URL = '/admin/acl/user/update',
    //获取全部职位,当前账号拥有的职位接口
    ALLROLEURL = '/admin/acl/user/toAssign/',
    //给已有的用户分配角色接口
    SETROLE_URL = '/admin/acl/user/doAssignRole',
    //删除某一个账号
    DELETEUSER_URL = '/admin/acl/user/remove/',
    //批量删除的接口
    DELETEALLUSER_URL = '/admin/acl/user/batchRemove'

}
//获取用户账号信息
export const reqUserInfo = (page: number, limit: number, username: string) => request.get<any, UserResponseData>(API.ALLUSER_URL + `${page}/${limit}/?username=${username}`)
//添加和更新用户请求接口
export const reqAddOrUpdateUser = (data: User) => {
    if (data.id) { 
        return request.put<any, any>(API.UPDATEUSER_URL, data)
    } else {
        return request.post<any, any>(API.ADDUSER_URL, data)
    }
}
//获取全部职位以及目前角色拥有职位
export const reqAllRole = (userId: number) => request.get<any, AllRoleResponseDate>(API.ALLROLEURL + userId)
//将角色分配给用户接口  POST 请求，通常用于提交数据。data 会直接作为请求体（request body）发送，不需要额外包装。
export const reqSetUserRole = (data: SetRoleData) => request.post<any, any>(API.SETROLE_URL, data)
//删除某一个账号
export const reqRemoveUser = (userId: number) => request.delete<any, any>(API.DELETEUSER_URL + userId)
//批量删除账号接口 Axios 的 API 设计：对于 DELETE 请求，如果需要请求体，必须通过 data 字段显式声明。
export const reqSelectUser = (idList: number[]) => request.delete<any, any>(API.DELETEUSER_URL, { data: idList })



